Document Id:
Document Version:	0.0
Author:	<Author>
Document Status:	Template
Release Date:
Location:	[Document Repository]

Contents

1. Pattern Name and Classification	3

1.1 Also Known As	3

2. Intent	3

3. Motivation	3

4. Applicability	3

5. Structure	3

6. Participants	3

7. Collaborations	3

8. Consequences	3

9. Implementation	3

10. Sample Code	3

11. Known Uses	3

12. Related Patterns	3

1. Pattern Name and Classification

State the pattern’s name. Name should be unique, short, and descriptive. This name will be later used as part of your designs vocabulary. Classify the pattern. Classifications are determined by two criteria, Purpose (Creational, Structural, or Behavioral) and Scope (Class or Object).

Purpose:

Creational- concern with the process of object creation.

Structural- patterns deal with the composition of classes or objects.

Behavioral- patterns characterize the ways in which classes or objects interact and distribute responsibilities.

Scope:

Class- these patterns deal with relationships between classes and their subclasses.

Object- these patterns deal with object relationships and can be changed at runtime.

1.1 Also Known As

List any other well known names for the pattern, if any.

2. Intent

Describe the intent of the pattern. The intent of the pattern should be able to answer these questions:

What does the design pattern do?

What is its rationale?

What particular design issue or problem does it address?

3. Motivation

Describe a scenario that best illustrates a design problem and how the class and object structures in the pattern solve the problem.

4. Applicability

Describe how the pattern answers these questions:

In what situations can the design pattern be applied?

What are examples of poor designs that the pattern can address?

How can you recognize these situations?

5. Structure

Use graphical representations of the pattern using as much detail as possible to convey to the reader of this document the components and responsibilities of the pattern.

6. Participants

List the classes and/or objects participating in the design pattern and their responsibilities.

7. Collaborations

Explain how the participants collaborate to carry out their responsibilities. State if there are any constraints on these interactions.

8. Consequences

How does the pattern support its objectives? What are the trade-offs and results of using the pattern? What aspect of system structure does it let you vary independently?

9. Implementation

List and describe pitfalls, hints, or techniques to be aware of when implementing the pattern. Are there language-specific issues?

10. Sample Code

Supply code fragments that illustrate how you might implement the pattern.

11. Known Uses

Provide examples of the pattern found in existing systems.

12. Related Patterns

What other design patterns are closely related to this one? What are the important differences? Also, with which other patterns should this one be used?